﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using AudiPyme.DAL;

namespace AudiPyme.BLL
{
    public class InstanciaTiposActivosVulnerabilidadesNegocio
    {
        //Método que elimina un conjunto de relaciones Tipo de Activo - Vulnerabilidad actuales de una empresa
        public static void EliminarInstanciaTipActVuln(List<TipActVulnCheck> CheckList, int IdEmpresa)
        {
            for (int i = 0; i < CheckList.Count(); i++)
            {
                if (CheckList[i].IdTipoActivo != 0 && CheckList[i].IdVulnerabilidad != 0)
                {
                    int IdTipoActivo = CheckList[i].IdTipoActivo;
                    int IdVulnerabilidad = CheckList[i].IdVulnerabilidad;
                    InstanciaTiposActivosVulnerabilidadesFactory.EliminaInstanciaTipActVuln(IdTipoActivo, IdVulnerabilidad, IdEmpresa);
                }
            }
        }

        //Método que recoge la información de las Relaciones Tipo Activo - Vulnerabilidad actuales de una empresa
        //y las devuelve con el formato adecuado para bindearlas a un gridview
        public static List<RelacTipActAmenVuln> ListaVulnPorTipoActivoEmpresa(int IdEmpresa, String TipoActivoSelec)
        {
            List<RelacTipActAmenVuln> LVulnPorTipActEmp = new List<RelacTipActAmenVuln>();
            ModeloContainer agenteBD = new ModeloContainer();
            LVulnPorTipActEmp = (from InstTipVulnEmp in agenteBD.InstanciaTiposActivosVulnerabilidadesEstablecer
                                 join TipAct in agenteBD.TiposActivosEstablecer
                                       on InstTipVulnEmp.IdTipoActivo equals TipAct.IdTipoActivo
                                 join Vuln in agenteBD.VulnerabilidadesEstablecer
                                 on InstTipVulnEmp.IdVulnerabilidad equals Vuln.IdVulnerabilidad
                                 where InstTipVulnEmp.IdEmpresa == IdEmpresa &&
                                       TipAct.TipoActivo == TipoActivoSelec && InstTipVulnEmp.Actual == true
                                 select new RelacTipActAmenVuln { IdTipoActivo = TipAct.IdTipoActivo, NombreTipoActivo = TipAct.TipoActivo, IdAmenVuln = Vuln.IdVulnerabilidad, NombreAmenVuln = Vuln.Vulnerabilidad }).ToList();
            return LVulnPorTipActEmp;
        }


    }
}
